<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>PU2CLR AKC695X Arduino Library: PU2CLR AKC695X Arduino Library</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">PU2CLR AKC695X Arduino Library
   &#160;<span id="projectnumber">1.0.2</span>
   </div>
   <div id="projectbrief">This is an Arduino Library to control the AKC695X / M695X DSP radio devices</div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('md__a_k_c695_x__r_e_a_d_m_e.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="PageDoc"><div class="header">
  <div class="headertitle">
<div class="title">PU2CLR <a class="el" href="class_a_k_c695_x.html">AKC695X</a> Arduino Library </div>  </div>
</div><!--header-->
<div class="contents">
<div class="textblock"><p>This is an Arduino Library to control the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> / M695X DSP radio devices.</p>
<p>This library was built based on <a href="http://maximradio.altervista.org/akc6955/AKC6955-datasheet-english.pdf">AKC6955 stereo FM / TV / MW / SW / LW digital tuning radio</a> document from "AKC technology". Others sources help the author to build this library. You can check these sources on <a href="https://pu2clr.github.io/AKC695X/#references">References</a>.</p>
<p>The PU2CLR <a class="el" href="class_a_k_c695_x.html">AKC695X</a> Arduino Library also intend to be used on <b>all members of the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> family with I²C bus interface</b> respecting, of course, the features available for each IC version. <b>Please, check the Datasheet of the divice before starting your project</b>. Finally, it can be freely distributed using the <a href="https://pu2clr.github.io/AKC695X/#mit-license">MIT Free Software model</a>.</p>
<p><a href="https://pu2clr.github.io/AKC695X/#mit-license">Copyright (c) 2020 Ricardo Lima Caratti</a>.</p>
<p>Contact: <a href="#" onclick="location.href='mai'+'lto:'+'__p'+'u2'+'clr'+'@g'+'mai'+'l.'+'com'+'__'; return false;">__pu2<span style="display: none;">.nosp@m.</span>clr@<span style="display: none;">.nosp@m.</span>gmail<span style="display: none;">.nosp@m.</span>.com<span style="display: none;">.nosp@m.</span>__</a>.</p>
<p>Be a member of Facebook group <a href="https://www.facebook.com/groups/2655942598067211">DSP receivers for hobbyists</a></p>
<h1><a class="anchor" id="autotoc_md1"></a>
Contents</h1>
<ol type="1">
<li><a href="https://pu2clr.github.io/AKC695X/#preface">Preface</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#your-support-is-important">Your support is important</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#library-features">Library Features</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#mit-license">MIT License</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#about-akc695x--m695x-dsp-radio">About AKC695X / M695X DSP radio</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#library-installation">Library Installation</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#akc695x-pin-definitions">AKC695X Pin definitions</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#schematic">Schematic</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/extras/docs/html/index.html">API Documentation</a></li>
<li><a href="https://github.com/pu2clr/AKC695X/tree/master/examples">Examples</a></li>
<li><a href="https://github.com/pu2clr/AKC695X#svideos">Videos</a></li>
<li><a href="https://pu2clr.github.io/AKC695X/#references">References</a></li>
</ol>
<h2><a class="anchor" id="autotoc_md2"></a>
Preface</h2>
<p>The <a class="el" href="class_a_k_c695_x.html">AKC695X</a> devices will surprise hobbyists and experimenters with its simplicity to build FM and AM (LW, MW, SW) receivers. There are currently several receivers based on DSP technology. The KT0915 and SI4735 devices are some examples widely disseminated in the market. This library was developed with the purpose of expanding the alternatives to electronics hobbyists and radio listeners. In this document you will see Arduino source codes, schematics, examples and tips to help you to build a receiver based on Arduino board and <a class="el" href="class_a_k_c695_x.html">AKC695X</a> devices.</p>
<p>{% include video01.html %}</p>
<h2><a class="anchor" id="autotoc_md3"></a>
Your support is important</h2>
<p>If you would like to support this library development, consider joining this project via Github. Alternatively, make suggestions on new features and report errors if you find them. Thank you!</p>
<p><br  />
</p>
<h2><a class="anchor" id="autotoc_md4"></a>
Library Features</h2>
<p>This library uses the I²C communication protocol and implements most of the functions offered by the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> (BROADCAST AM / FM / SW / LW RADIO RECEIVER).</p>
<p>The main features of this library are listed below.</p>
<ol type="1">
<li>Open Source. It is free. You can use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software. See <a href="https://pu2clr.github.io/AKC695X/#mit-license">MIT License to know more</a>;</li>
<li>Built based on <a href="http://maximradio.altervista.org/akc6955/AKC6955-datasheet-english.pdf">AKC6955 stereo FM / TV / MW / SW / LW digital tuning radio</a>;</li>
<li>C++ Language and Object-oriented programming. You can easily extend the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> class by adding more functionalities;</li>
<li>Available on Arduino IDE (via Manage Libraries). Easy to install and use;</li>
<li>Cross-platform. You can compile and run this library on most of board available on Arduino IDE (Examples: ATtiny85, boards based on ATmega328 and ATmega-32u4, ATmega2560, ARM Cortex, STM32, Arduino DUE, ESP32 and more);</li>
<li>Simplifies projects based on <a class="el" href="class_a_k_c695_x.html">AKC695X</a> IC family with support to I²C;</li>
<li>Seeking function support;</li>
<li>Support to <b>32.768KHz and 12MHz</b> crystal oscillators;</li>
<li>Support to audio controlled by the MCU (Arduino) or potentiometer;</li>
<li>Real tim FM stereo or mono indicator;</li>
<li>FM stereo or mono selecting;</li>
<li>Real time signal level reading;</li>
<li>Real time AM and FM carrier to noise ratio information (dB).</li>
<li>Bandwidth selection for FM;</li>
<li>Custom band support;</li>
<li>More than 40 functions implemented.</li>
</ol>
<h2><a class="anchor" id="autotoc_md5"></a>
MIT License</h2>
<p>Copyright (c) 2019 Ricardo Lima Caratti</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:</p>
<p>The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.</p>
<p>THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE ARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.</p>
<h2><a class="anchor" id="autotoc_md6"></a>
Library Installation</h2>
<p>You can install this library on your Arduino environment using different methods. The video below shows how to install the PU2CLR <a class="el" href="class_a_k_c695_x.html">AKC695X</a> Arduino Library from your Arduino IDE.</p>
<p><a href="https://youtu.be/eHHeXapDNiU">PU2CLR AKC695X Arduino Library Installation</a></p>
<p>{% include libinstalling.html %}</p>
<h2><a class="anchor" id="autotoc_md7"></a>
About AKC695X / M695X DSP radio</h2>
<p>The <a class="el" href="class_a_k_c695_x.html">AKC695X</a> is a family of IC DSP receiver from AKC technology. The AKC6955 and AKC6959sx support AM and FM modes. On AM mode the AKC6955 and AKC6969 work on LW, MW and SW. On FM mode they work from 64MHz to 222MHz.</p>
<h3><a class="anchor" id="autotoc_md8"></a>
AKC695X features</h3>
<p>The table below shows some <a class="el" href="class_a_k_c695_x.html">AKC695X</a> devices family features.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Feature </th><th class="markdownTableHeadNone">AKC6951 </th><th class="markdownTableHeadNone">AKC6955 </th><th class="markdownTableHeadNone">AKC6959sx  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">stand by 30 ~ 230MHz Any frequency FM demodulation </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">stand by 0.15 ~ 30MHz Any frequency AM demodulation </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Preset FM band ( 64 ~ 108 MHz ) </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">stand by TV1 audio( 56.25 ~ 91.75 MHz ) </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">stand by TV2 audio( 174.75 ~ 222.25 MHz ) </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Presets wave band ( 520 ~ 1730 KHz ) </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Preset shortwave band ( 3.2 ~ 21.9 MHz ) </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Preset long-wave band ( 150 ~ 285 KHz ) </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Custom support band </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">It supports a wide supply voltage range: 2.0V ~ 4.5V </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">stand by 32.768KHz &amp; 12MHz Passive mode crystal reference clock and Pin </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Integrated audio amplifier (maximum power differential 0.5W ) </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Two kinds of control volume: volume potentiometer and the volume register </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Two kinds of de-emphasis modes: 50us / 75us </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Support tuning lamp function </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">The audio output may be in phase, may be inverted output </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Support for stereo line input </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Support low-power standby mode, 3V When power consumption 10uA </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Internal integrated PLL </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Intelligent frequency control </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">AGC </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Precise digital demodulation </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Smart mute function </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">SW Increased tracking filter, greatly improving SW Audibility </td><td class="markdownTableBodyNone"></td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">MW Precise tuning adaptive front end </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">FM Subwoofer </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">integrated LDO </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">According to the battery voltage, automatically adjust the volume </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Pb-free / RoHS complian </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X </td><td class="markdownTableBodyNone">X  </td></tr>
</table>
<p><b>Sources:</b> AKC6951, AKC6955 and AKC6959sx Datasheets.</p>
<p><b>ATTENTION: The AKC6952 and AKC6959 do not have I²C interface. So, they will not work with this library. Try AKC6951, AKC6955 or AKC6959sx</b>. <br  />
</p>
<h2><a class="anchor" id="autotoc_md9"></a>
Registers setup</h2>
<p>This library uses the I²C protocols to read and write <a class="el" href="class_a_k_c695_x.html">AKC695X</a> registers. In this context, registers are memory position into the device.</p>
<p>The first 13 registers, you can use to change the behavior of the device. They are read and write registers. The registers from 20 to 27, can be used to get the current device status. They are read only registers.</p>
<p>By writing and reading these register, you can control the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> devices.</p>
<h3><a class="anchor" id="autotoc_md10"></a>
Register operations</h3>
<p>By using the registers 0 to 13, you can change the band, set the frequency, set the channel space, set the audio behavior and volume, set a custom band and more. The file <a href="https://github.com/pu2clr/AKC695X/blob/master/AKC695X.h">AKC695X.h</a> has details about the all registers used in the library. Also, you can read the <a href="https://pu2clr.github.io/AKC695X/extras/docs/html/modules.html">API Documentation</a> to know more about <a class="el" href="class_a_k_c695_x.html">AKC695X</a> registers.</p>
<p>There is no information about the register 10 and the registers 14 to 19 in the documentation used to develop this library.</p>
<p>To represent the information stored in the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> registers, this library used the resources of the C / C ++ language: union, struct and typedef. This way, the user of this library will be able to customize it easily.</p>
<p>This approach is shown below for the registers 0, 1, 2 and 3.</p>
<h4><a class="anchor" id="autotoc_md11"></a>
Table Reg0</h4>
<p>Reg0: configure register 0 (default: 0x4c) Address - Type 0x00 (RW)</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">BIT </th><th class="markdownTableHeadNone">Label </th><th class="markdownTableHeadNone">Default </th><th class="markdownTableHeadNone">Function Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">7 </td><td class="markdownTableBodyNone">power_on </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">1 = On; 0 = Off  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">6 </td><td class="markdownTableBodyNone">fm_en </td><td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">1 = FM; 0 = AM  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">5 </td><td class="markdownTableBodyNone">tune </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">1 = Trigger tune process. The STC bit is set high when the tune operation completes  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">4 </td><td class="markdownTableBodyNone">seek </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">1 = Trigger tune process. The STC bit is set high when the tune operation completes  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">3 </td><td class="markdownTableBodyNone">seekup </td><td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">1 = Seek up; 0 = Seek down  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">2 </td><td class="markdownTableBodyNone">mute </td><td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">0 = Normal operation; 1 = Mute L / R  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">1:0 </td><td class="markdownTableBodyNone">rsv </td><td class="markdownTableBodyNone">00 </td><td class="markdownTableBodyNone">Debug use, do not change this value using  </td></tr>
</table>
<p>Source: <a href="http://maximradio.altervista.org/akc6955/AKC6955-datasheet-english.pdf">AKC6955 stereo FM / TV / MW / SW / LW digital tuning radio</a></p>
<p>Be aware that the table above presents the data in order of the most significant bits to the least significant bits. In C/C++ representation of that data will be inverted. See the C/C++ code below.</p>
<p><a class="anchor" id="autotoc_md12"></a></p><h5>Data representation in C/C++ for the register 0</h5>
<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
<div class="line">    <span class="keyword">struct</span></div>
<div class="line">    {</div>
<div class="line">        uint8_t rsv : 2;      </div>
<div class="line">        uint8_t mute : 1;     </div>
<div class="line">        uint8_t seekup : 1;   </div>
<div class="line">        uint8_t seek : 1;     </div>
<div class="line">        uint8_t tune : 1;     </div>
<div class="line">        uint8_t fm_en : 1;    </div>
<div class="line">        uint8_t power_on : 1; </div>
<div class="line">    } refined;</div>
<div class="line">    uint8_t raw;</div>
<div class="line">} <a class="code" href="group___g_a01.html#unionakc595x__reg0">akc595x_reg0</a>;</div>
</div><!-- fragment --><p>It is important to say that the code above does not necessarily generate extra machine code. Much more than that, the code above guides the compiler on how to operate with the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> bits stored into its registers. In this case register 0. If you have some experience in C/C++, you will know when you can use this approach instead direct bit manipulation and vice-versa.</p>
<p>The code below is an example of how this data structure can be used.</p>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="group___g_a03.html#gaf156fb3c65b4bfc68a977f4586ae23a6">AKC695X::powerOn</a>(uint8_t fm_en, uint8_t tune, uint8_t mute, uint8_t seek, uint8_t seekup)</div>
<div class="line">{</div>
<div class="line">    <a class="code" href="group___g_a01.html#unionakc595x__reg0">akc595x_reg0</a> reg0;</div>
<div class="line"> </div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.power_on = 1;</div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.rsv = 0;</div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.fm_en = fm_en;</div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.mute = mute;</div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.seek = seek;</div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.seekup = seekup;</div>
<div class="line">    reg0.<a class="code" href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">refined</a>.tune = tune;</div>
<div class="line"> </div>
<div class="line">    <a class="code" href="group___g_a03.html#gaffff7bd58909a00d6a461f4a325ab396">setRegister</a>(<a class="code" href="_a_k_c695_x_8h.html#a748ad53bef975af9c1edbcacc58e5be4">REG00</a>, reg0.<a class="code" href="group___g_a01.html#a69492e94019f64dbfa51040914da5d81">raw</a>);</div>
<div class="line"> </div>
<div class="line">}</div>
</div><!-- fragment --><h4><a class="anchor" id="autotoc_md13"></a>
Table Reg1</h4>
<p>Reg1: configure register 1 (default: 0x10) Address - Type 0x01 (RW)</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">BIT </th><th class="markdownTableHeadNone">Label </th><th class="markdownTableHeadNone">Default </th><th class="markdownTableHeadNone">Function Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">7:3 </td><td class="markdownTableBodyNone">amband </td><td class="markdownTableBodyNone">0x2 </td><td class="markdownTableBodyNone">see table [Table Reg1 amband]()  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">2:0 </td><td class="markdownTableBodyNone">fmband </td><td class="markdownTableBodyNone">0x00 </td><td class="markdownTableBodyNone">see table [Table Reg1 fmband]()  </td></tr>
</table>
<p>Source: <a href="http://maximradio.altervista.org/akc6955/AKC6955-datasheet-english.pdf">AKC6955 stereo FM / TV / MW / SW / LW digital tuning radio</a></p>
<p><a class="anchor" id="autotoc_md14"></a></p><h5>Data representation in C/C++ for the register 1</h5>
<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
<div class="line">    <span class="keyword">struct</span></div>
<div class="line">    {</div>
<div class="line">        uint8_t fmband : 3; </div>
<div class="line">        uint8_t amband : 4; </div>
<div class="line">    } refined;</div>
<div class="line">    uint8_t raw;</div>
<div class="line">} <a class="code" href="group___g_a01.html#unionakc595x__reg1">akc595x_reg1</a>;</div>
</div><!-- fragment --><p>The code below is an example of how the <b><a class="el" href="group___g_a01.html#unionakc595x__reg1" title="Reg1 (type 0x01 / RW): configures register 1 (default: 0x10) Address.">akc595x_reg1</a></b> can be used.</p>
<div class="fragment"><div class="line">  .</div>
<div class="line">  .</div>
<div class="line">akc595x_reg1 reg1;</div>
<div class="line">  .</div>
<div class="line">  .</div>
<div class="line">reg1.raw = 0;</div>
<div class="line">reg1.refined.fmband =  fm_band; <span class="comment">// Selects the band will be used for FM (see fm band table)</span></div>
<div class="line">setRegister(<a class="code" href="_a_k_c695_x_8h.html#afc04faecdab9e0d1751466b6c53fdaf1">REG01</a>, reg1.raw);</div>
<div class="line">  . </div>
<div class="line">  .</div>
</div><!-- fragment --><p><a class="anchor" id="autotoc_md15"></a></p><h5>Table Reg1 amband</h5>
<p>The table below can help you to select the right band and its frequency limits. You might need to use it in your Arduino sketch.</p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">amband value </th><th class="markdownTableHeadNone">N# </th><th class="markdownTableHeadNone">Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">00000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">LW, 0.15 ~ 0.285, 3K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">00001 </td><td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">MW1, 0.52 ~ 1.71, 5K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">00010 </td><td class="markdownTableBodyNone">2 </td><td class="markdownTableBodyNone">MW2, 0.522 ~ 1.62, 9K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">00011 </td><td class="markdownTableBodyNone">3 </td><td class="markdownTableBodyNone">MW3, 0.52 ~ 1.71, 10K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">00100 </td><td class="markdownTableBodyNone">4 </td><td class="markdownTableBodyNone">SW1, 4.7 ~ 10, 5K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">00101 </td><td class="markdownTableBodyNone">5 </td><td class="markdownTableBodyNone">SW2, 3.2 ~ 4.1, 5K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">00110 </td><td class="markdownTableBodyNone">6 </td><td class="markdownTableBodyNone">SW3, 4.7 ~ 5.6, 5K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">00111 </td><td class="markdownTableBodyNone">7 </td><td class="markdownTableBodyNone">SW4, 5.7 ~ 6.4, 5K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">01000 </td><td class="markdownTableBodyNone">8 </td><td class="markdownTableBodyNone">SW5, 6.8 ~ 7.6, 5K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">01001 </td><td class="markdownTableBodyNone">9 </td><td class="markdownTableBodyNone">SW6, 9.2 ~ 10, 5K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">01010 </td><td class="markdownTableBodyNone">10 </td><td class="markdownTableBodyNone">SW7, 11.4 ~ 12.2, 5K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">01011 </td><td class="markdownTableBodyNone">11 </td><td class="markdownTableBodyNone">SW8, 13.5 ~ 14.3  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">01100 </td><td class="markdownTableBodyNone">12 </td><td class="markdownTableBodyNone">SW9, 15 ~ 15.9  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">01101 </td><td class="markdownTableBodyNone">13 </td><td class="markdownTableBodyNone">SW10, 17.4 ~ 17.9  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">01110 </td><td class="markdownTableBodyNone">14 </td><td class="markdownTableBodyNone">SW11, 18.9 ~ 19.7, 5K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">01111 </td><td class="markdownTableBodyNone">15 </td><td class="markdownTableBodyNone">SW12, 21.4 ~ 21.9, 5K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">10000 </td><td class="markdownTableBodyNone">16 </td><td class="markdownTableBodyNone">SW13, 11.4 ~ 17.9, 5K station search  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">10010 </td><td class="markdownTableBodyNone">17 </td><td class="markdownTableBodyNone">MW4, 0.52 to 1.73, 5K station search  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Other </td><td class="markdownTableBodyNone">18+ </td><td class="markdownTableBodyNone">custom band, station search interval = 3K  </td></tr>
</table>
<p><a class="anchor" id="autotoc_md16"></a></p><h5>Table Reg1 fmband</h5>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">fmband value </th><th class="markdownTableHeadNone">N# </th><th class="markdownTableHeadNone">Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">000 </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">FM1,87 ~ 108, station search space specified intervals  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">001 </td><td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">FM2,76 ~ 108, station search space specified intervals  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">010 </td><td class="markdownTableBodyNone">2 </td><td class="markdownTableBodyNone">FM3,70 ~ 93, with a space station search interval set  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">011 </td><td class="markdownTableBodyNone">3 </td><td class="markdownTableBodyNone">FM4,76 ~ 90, Tuning predetermined space intervals  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">100 </td><td class="markdownTableBodyNone">4 </td><td class="markdownTableBodyNone">FM5,64 ~ 88, with a space station search interval set  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">101 </td><td class="markdownTableBodyNone">5 </td><td class="markdownTableBodyNone">TV1,56.25 ~ 91.75, station search space specified intervals  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">110 </td><td class="markdownTableBodyNone">6 </td><td class="markdownTableBodyNone">TV2, 174.75 ~ 222.25, found  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">111 </td><td class="markdownTableBodyNone">7 </td><td class="markdownTableBodyNone">sets predetermined space intervals, custom FM, station search space specified intervals  </td></tr>
</table>
<h4><a class="anchor" id="autotoc_md17"></a>
Table Reg2  and Reg3</h4>
<p>The registers 2 and 3 are used together. The tuning frequency is obtained by calculation. The formula is described below.</p>
<h4><a class="anchor" id="autotoc_md18"></a>
Reg2</h4>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">BIT </th><th class="markdownTableHeadNone">Label </th><th class="markdownTableHeadNone">Default </th><th class="markdownTableHeadNone">Function Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">7 </td><td class="markdownTableBodyNone">rsv </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">Reserved for internal use.  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">6 </td><td class="markdownTableBodyNone">ref_32k_mo </td><td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">1 = 32.768 crystal; 0 = 12MHz crystal  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">5 </td><td class="markdownTableBodyNone">Mode3k </td><td class="markdownTableBodyNone">0 </td><td class="markdownTableBodyNone">1 = 3K custom channel number as the AM mode; 0 = custom channel number pattern 5K  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">4:0 </td><td class="markdownTableBodyNone">Channel </td><td class="markdownTableBodyNone">0x0A </td><td class="markdownTableBodyNone">The higher 5 bits of the channel number. See comments [ˆ1] and [ˆ2]  </td></tr>
</table>
<p><a class="anchor" id="autotoc_md19"></a></p><h5>Data representation in C/C++ for the register 2</h5>
<div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">union </span>{</div>
<div class="line">    <span class="keyword">struct</span></div>
<div class="line">    {</div>
<div class="line">        uint8_t channel : 5;      </div>
<div class="line">        uint8_t mode3k : 1;       </div>
<div class="line">        uint8_t ref_32k_mode : 1; </div>
<div class="line">        uint8_t rsv : 1;          </div>
<div class="line">    } refined;</div>
<div class="line">    uint8_t raw;</div>
<div class="line">} <a class="code" href="group___g_a01.html#unionakc595x__reg2">akc595x_reg2</a>;</div>
</div><!-- fragment --><p><a class="anchor" id="autotoc_md20"></a></p><h5>Reg3</h5>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">BIT </th><th class="markdownTableHeadNone">Label </th><th class="markdownTableHeadNone">Default </th><th class="markdownTableHeadNone">Function Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">7:0 </td><td class="markdownTableBodyNone">rsv </td><td class="markdownTableBodyNone">0xC8 </td><td class="markdownTableBodyNone">The lower 8 bits of the channel number. See comment [ˆ1]  </td></tr>
</table>
<p>[ˆ1] <br  />
</p><ol type="1">
<li><b>On FM mode: Channel Freq = 25kHz * CHAN + 30MHz</b>;</li>
<li><b>On AM mode</b>:<ul>
<li>when 5K channel number pattern, Channel Freq = 5kHz * CHAN</li>
<li>when 3K channel number pattern, Channel Freq = 3kHz * CHAN.</li>
</ul>
</li>
</ol>
<p>[ˆ2] <b>If the MCU is working with MW2 (see table Table Reg1 amband), the channel number has to be a multiple of three. Otherwise, the radio will be a mess.</b> <br  />
</p>
<p><a class="anchor" id="autotoc_md21"></a></p><h5>Data representation in C/C++ for the register 3</h5>
<div class="fragment"><div class="line"><span class="keyword">typedef</span> uint8_t <a class="code" href="group___g_a01.html#ga70e552b2a9ce062ef0342a70e9717a50">akc595x_reg3</a>;</div>
</div><!-- fragment --><p><br  />
</p>
<p><b>See <a class="el" href="_a_k_c695_x_8cpp.html">AKC695x.cpp</a> methods setFM, setAM and setFrequency to know how the <a class="el" href="group___g_a01.html#unionakc595x__reg2" title="Reg2 (type 0x02 / RW): configure register 2 (default: 0x4A) Address.">akc595x_reg2</a> and <a class="el" href="group___g_a01.html#unionakc595x__reg2" title="Reg2 (type 0x02 / RW): configure register 2 (default: 0x4A) Address.">akc595x_reg2</a> work</b>.</p>
<p><a href="https://pu2clr.github.io/AKC695X/extras/docs/html/index.html">Click here to read the complete API Documentation</a></p>
<p><br  />
 <br  />
</p>
<h2><a class="anchor" id="autotoc_md22"></a>
Schematic</h2>
<p>The main porpuse of this circuit is testing de <a class="el" href="class_a_k_c695_x.html">AKC695X</a> Arduino Library. It does not intend to be a real receiver for exigent listener. However, it is possible to start with it and after add some improvements. On the other hand, with this simple circuit, the experimenter may be surprised with its performance.</p>
<p>The figure below shows the basic schematic of the <a class="el" href="class_a_k_c695_x.html">AKC695X</a> and Arduino Pro Mini 3.3V, 8MHz. <br  />
</p>
<p><img src="https://pu2clr.github.io/AKC695X/extras/images/basic_schematic.png" alt="Basic Schematic" class="inline"/></p>
<h3><a class="anchor" id="autotoc_md23"></a>
Component parts</h3>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Name / Label </th><th class="markdownTableHeadNone">Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">AKC6955 </td><td class="markdownTableBodyNone">SSOP24 DSP receiver from AKC. You also can use AKC5951 (just FM and AM/MW) or AKC6959sx  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">Arduino Board </td><td class="markdownTableBodyNone">It can be an Atmega based board, SMT32, ESP32, Attiny or another compatible Arduino board  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">Y1 </td><td class="markdownTableBodyNone">32.32.768KHz or 12MHz crystal oscillator. By default this library uses 32.768KHz. But, you can set it to deal with 12MHz crystal. See <a href="https://pu2clr.github.io/AKC695X/extras/docs/html/index.html">API Documentation</a>.  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">C1 and C2 </td><td class="markdownTableBodyNone">22pF Ceramic or Tantalum capacitor  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">C3 </td><td class="markdownTableBodyNone">470uF Electrolytic capacitor  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">C4 </td><td class="markdownTableBodyNone">1nF Ceramic or Tantalum capacitor  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">C4 </td><td class="markdownTableBodyNone">1nF Ceramic or Tantalum capacitor  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">C5 and C8 </td><td class="markdownTableBodyNone">100nF Ceramic or Tantalum capacitor  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">C6 </td><td class="markdownTableBodyNone">100pF Ceramic or Tantalum capacitor  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">C7 </td><td class="markdownTableBodyNone">3nF Ceramic or Tantalum capacitor  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">C9 </td><td class="markdownTableBodyNone">22uF Electrolytic capacitor  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">R1 </td><td class="markdownTableBodyNone">10K resistor  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">R2 </td><td class="markdownTableBodyNone">22K resisto. This value is not critical. Use something closer to 25K  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">R3 </td><td class="markdownTableBodyNone">4.7K resistor. This value is not critical. Use something closer to 5K  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">LED1 </td><td class="markdownTableBodyNone">regular LED  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">L1 </td><td class="markdownTableBodyNone">Ferrite Rod Coil for LW and MW. It is very common in old medium wave receivers  </td></tr>
</table>
<h3><a class="anchor" id="autotoc_md24"></a>
AKC695X Pin definitions</h3>
<p>The figure and table below show the pin description of the AKC6951 and AKC6955.</p>
<p><img src="https://pu2clr.github.io/AKC695X/extras/images/AKC695X_pinout.png" alt="AKC6951(55) pin out" class="inline"/></p>
<table class="markdownTable">
<tr class="markdownTableHead">
<th class="markdownTableHeadNone">Pin </th><th class="markdownTableHeadNone">Name </th><th class="markdownTableHeadNone">Description  </th></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">1 </td><td class="markdownTableBodyNone">oscin </td><td class="markdownTableBodyNone">Bonding or passive 32.768K 12MHz crystal to ground, or receive an external clock reference signal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">2 </td><td class="markdownTableBodyNone">oscout </td><td class="markdownTableBodyNone">Passive other end connected to the crystal, when connected to an external clock, this pin floating  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">3 </td><td class="markdownTableBodyNone">gnd </td><td class="markdownTableBodyNone">Close to ground  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">4 </td><td class="markdownTableBodyNone">tund </td><td class="markdownTableBodyNone">Radio lock indicator pin, connected directly to the light emitting diode; Tuning the MCU software when the pin may also be used as a stop sign  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">5 </td><td class="markdownTableBodyNone">p_on </td><td class="markdownTableBodyNone">On-chip power switch, high input power chip; the chip down in a low-power standby state, power consumption of approximately 10uA  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">6 </td><td class="markdownTableBodyNone">sclk </td><td class="markdownTableBodyNone">2C clock signal input  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">7 </td><td class="markdownTableBodyNone">sdio </td><td class="markdownTableBodyNone">I²C bidirectional data signal input / output  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">8 </td><td class="markdownTableBodyNone">inl </td><td class="markdownTableBodyNone">External audio signal input L, proposes to add blocking capacitor 1uF  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">9 </td><td class="markdownTableBodyNone">inr </td><td class="markdownTableBodyNone">External audio input signal R, proposes to add blocking capacitor 1uF  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">10 </td><td class="markdownTableBodyNone">vbat </td><td class="markdownTableBodyNone">Then the power pins need to pay attention to the nearest ground 0.1uF decoupling capacitance to ground  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">11 </td><td class="markdownTableBodyNone">lout </td><td class="markdownTableBodyNone">Left channel audio output  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">12 </td><td class="markdownTableBodyNone">gnd </td><td class="markdownTableBodyNone">gnd  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">13 </td><td class="markdownTableBodyNone">rout </td><td class="markdownTableBodyNone">Right channel audio output  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">14 </td><td class="markdownTableBodyNone">vref </td><td class="markdownTableBodyNone">Precision 1.5V output pin, to provide a baseline volume potentiometer  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">15 </td><td class="markdownTableBodyNone">vol </td><td class="markdownTableBodyNone">Variable volume potentiometer connected end, the fixed end of a potentiometer directly connected to VREF, and the other end through a resistor to ground. The resistance ratio of the resistor and potentiometer as 1: 2  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">16 </td><td class="markdownTableBodyNone">vbat </td><td class="markdownTableBodyNone">Then the power pins need to pay attention to the nearest ground 0.1uF decoupling capacitance to ground  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">17 </td><td class="markdownTableBodyNone">gnd </td><td class="markdownTableBodyNone">Close to ground  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">18 </td><td class="markdownTableBodyNone">mwinN </td><td class="markdownTableBodyNone">MW and LW differential input signal  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">19 </td><td class="markdownTableBodyNone">mwinP </td><td class="markdownTableBodyNone">MW and LW differential input signal  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">20 </td><td class="markdownTableBodyNone">swin </td><td class="markdownTableBodyNone">Shortwave signal input terminal, note add blocking capacitor recommended 3nF  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">21 </td><td class="markdownTableBodyNone">gnd </td><td class="markdownTableBodyNone">Close to ground  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">22 </td><td class="markdownTableBodyNone">fmin </td><td class="markdownTableBodyNone">FM radio frequency signal input terminal, note add blocking capacitor, 100pF recommendations  </td></tr>
<tr class="markdownTableRowOdd">
<td class="markdownTableBodyNone">23 </td><td class="markdownTableBodyNone">ldocap </td><td class="markdownTableBodyNone">Internal LDO output pin, nearest the need decoupling capacitors, recommendations 47uF  </td></tr>
<tr class="markdownTableRowEven">
<td class="markdownTableBodyNone">24 </td><td class="markdownTableBodyNone">gnd </td><td class="markdownTableBodyNone">Close to ground  </td></tr>
</table>
<h1><a class="anchor" id="autotoc_md25"></a>
Prototype Photos</h1>
<p><img src="https://pu2clr.github.io/AKC695X/extras/images/board_adapter_12MHZ_01.png" alt="Photo 01" class="inline"/></p>
<p><br  />
</p>
<p><img src="https://pu2clr.github.io/AKC695X/extras/images/board_adapter_32KHz_03.png" alt="Ponto 02" class="inline"/></p>
<p><br  />
</p>
<p><img src="https://pu2clr.github.io/AKC695X/extras/images/prototype_tmp_03.png" alt="Photo 03" class="inline"/></p>
<p><br  />
</p>
<p><img src="https://pu2clr.github.io/AKC695X/extras/images/prototype_tmp_02.png" alt="Photo 03" class="inline"/></p>
<p><br  />
</p>
<h1><a class="anchor" id="autotoc_md26"></a>
Videos</h1>
<ul>
<li><a href="https://youtu.be/BHW2wCZiTkU">AKC6955 Arduino Library - First Test</a></li>
<li><a href="https://youtu.be/3OwnVBmOjAs">PU2CLR AKC695X Arduino Library - SEEKING TEST</a></li>
</ul>
<h1><a class="anchor" id="autotoc_md27"></a>
Receivers based on AKC695X / M695X</h1>
<p><a href="https://swling.com/blog/tag/shortwave-radio-review/">Troy reviews the Audiomax SRW-710S</a> <a href="https://youtu.be/SZ1bf-yj3C0">Full Review of the Tivdio V115 AM FM Shortwave portable receiver</a></p>
<h1><a class="anchor" id="autotoc_md28"></a>
References</h1>
<ul>
<li><a href="https://www.tindie.com/products/microwavemont/am-sw-fm-radio-by-dsp-radio-chip-version-2/">AM-SW-FM radio by DSP radio chip version 2</a></li>
<li><a href="https://hackaday.io/project/12944-radio-yes-am-sw-fm-radio-by-dsp-radio-chip">Radio, yes AM-SW-FM radio by DSP radio chip</a></li>
<li><a href="https://github.com/kodera2t/AKC6955-M6955--DSP-radio-with-full-colour-LCD">AKC6955-M6955&ndash;DSP-radio-with-full-colour-LCD</a></li>
<li><a href="http://www.vk6fh.com/vk6fh/V115%20receiver.htm?fbclid=IwAR3QyfxmpFihzIVs5fvR4vsCe-_0OUpyzbhPUWvgIbsEepbHHULL-FxnDl0">Retekess V115 Tivdio V115 / Audiomax/Kaimeda SRW-710S</a></li>
<li></li>
</ul>
</div></div><!-- contents -->
</div><!-- PageDoc -->
</div><!-- doc-content -->
<div class="ttc" id="agroup___g_a01_html_unionakc595x__reg0"><div class="ttname"><a href="group___g_a01.html#unionakc595x__reg0">akc595x_reg0</a></div><div class="ttdoc">Reg0 (type 0x00 / RW): configures register 0 (default: 0x4c) Address.</div><div class="ttdef"><b>Definition:</b> AKC695X.h:111</div></div>
<div class="ttc" id="agroup___g_a01_html_unionakc595x__reg1"><div class="ttname"><a href="group___g_a01.html#unionakc595x__reg1">akc595x_reg1</a></div><div class="ttdoc">Reg1 (type 0x01 / RW): configures register 1 (default: 0x10) Address.</div><div class="ttdef"><b>Definition:</b> AKC695X.h:132</div></div>
<div class="ttc" id="agroup___g_a01_html_unionakc595x__reg2"><div class="ttname"><a href="group___g_a01.html#unionakc595x__reg2">akc595x_reg2</a></div><div class="ttdoc">Reg2 (type 0x02 / RW): configure register 2 (default: 0x4A) Address.</div><div class="ttdef"><b>Definition:</b> AKC695X.h:152</div></div>
<div class="ttc" id="agroup___g_a01_html_a8640c13d307b61f1fafd9ec3c2d425a3"><div class="ttname"><a href="group___g_a01.html#a8640c13d307b61f1fafd9ec3c2d425a3">akc595x_reg0::refined</a></div><div class="ttdeci">struct akc595x_reg0::@0 refined</div></div>
<div class="ttc" id="agroup___g_a01_html_ga70e552b2a9ce062ef0342a70e9717a50"><div class="ttname"><a href="group___g_a01.html#ga70e552b2a9ce062ef0342a70e9717a50">akc595x_reg3</a></div><div class="ttdeci">uint8_t akc595x_reg3</div><div class="ttdoc">Reg3 (type 0x03 / RW): configures register 3 (default: 0xC8) Address.</div><div class="ttdef"><b>Definition:</b> AKC695X.h:167</div></div>
<div class="ttc" id="a_a_k_c695_x_8h_html_afc04faecdab9e0d1751466b6c53fdaf1"><div class="ttname"><a href="_a_k_c695_x_8h.html#afc04faecdab9e0d1751466b6c53fdaf1">REG01</a></div><div class="ttdeci">#define REG01</div><div class="ttdef"><b>Definition:</b> AKC695X.h:72</div></div>
<div class="ttc" id="agroup___g_a03_html_gaf156fb3c65b4bfc68a977f4586ae23a6"><div class="ttname"><a href="group___g_a03.html#gaf156fb3c65b4bfc68a977f4586ae23a6">AKC695X::powerOn</a></div><div class="ttdeci">void powerOn(uint8_t fm_en, uint8_t tune, uint8_t mute, uint8_t seek, uint8_t seekup)</div><div class="ttdoc">Power the device on.</div><div class="ttdef"><b>Definition:</b> AKC695X.cpp:108</div></div>
<div class="ttc" id="a_a_k_c695_x_8h_html_a748ad53bef975af9c1edbcacc58e5be4"><div class="ttname"><a href="_a_k_c695_x_8h.html#a748ad53bef975af9c1edbcacc58e5be4">REG00</a></div><div class="ttdeci">#define REG00</div><div class="ttdef"><b>Definition:</b> AKC695X.h:71</div></div>
<div class="ttc" id="agroup___g_a03_html_gaffff7bd58909a00d6a461f4a325ab396"><div class="ttname"><a href="group___g_a03.html#gaffff7bd58909a00d6a461f4a325ab396">AKC695X::setRegister</a></div><div class="ttdeci">void setRegister(uint8_t reg, uint8_t parameter)</div><div class="ttdoc">Sets a given register with a given value.</div><div class="ttdef"><b>Definition:</b> AKC695X.cpp:131</div></div>
<div class="ttc" id="agroup___g_a01_html_a69492e94019f64dbfa51040914da5d81"><div class="ttname"><a href="group___g_a01.html#a69492e94019f64dbfa51040914da5d81">akc595x_reg0::raw</a></div><div class="ttdeci">uint8_t raw</div><div class="ttdef"><b>Definition:</b> AKC695X.h:122</div></div>
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="footer">Generated by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.17 </li>
  </ul>
</div>
</body>
</html>
